home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / Pascal OS8 / Everything / ModalRadios.p < prev    next >
Encoding:
Text File  |  1998-10-30  |  5.3 KB  |  216 lines  |  [TEXT/CWIE]

  1. { ModalRadios.p -- Modal dialog }
  2. { Created 10/30/98 1:06 PM by AppMaker }
  3.  
  4. Unit ModalRadios;
  5. Interface
  6.  
  7. Uses
  8.     Types,
  9.     Quickdraw,
  10.     Controls,
  11.     Dialogs,
  12.     Events,
  13.     Lists,
  14.     Menus,
  15.     TextEdit,
  16.     DModalRadiosData,
  17.     AMDialog;
  18.  
  19. type
  20.     CModalRadios        = object (AMDialog)
  21.  
  22.     {data members}
  23.         mData:        DModalRadiosData;
  24.  
  25.     mOKHandle:        ControlHandle;
  26.     mRadioGroupGroupHandle:        ControlHandle;
  27.     mStandardHandle:        ControlHandle;
  28.     mGroupBoxHandle:        ControlHandle;
  29.     mGroupGroupHandle:        ControlHandle;
  30.     mGroupRadio1Handle:    ControlHandle;
  31.     mGroupRadio2Handle:    ControlHandle;
  32.     mGroupRadio3Handle:    ControlHandle;
  33.     mGraphicBoxHandle:        ControlHandle;
  34.     mGraphicGroupHandle:        ControlHandle;
  35.     mStopHandle:        ControlHandle;
  36.     mGoHandle:        ControlHandle;
  37.     mBevelBoxHandle:        ControlHandle;
  38.     mBevelGroupHandle:        ControlHandle;
  39.     mRadioButtonHandle:        ControlHandle;
  40.     mRadioButton2Handle:        ControlHandle;
  41.     mTextBoxHandle:        ControlHandle;
  42.     mTextGroupHandle:        ControlHandle;
  43.     mNameHandle:        ControlHandle;
  44.     mKindHandle:        ControlHandle;
  45.     mSizeHandle:        ControlHandle;
  46.  
  47.     {methods - public}
  48.         Procedure ConnectToData    (inData:    AMSignaler); Override;
  49.  
  50.     {methods - internal}
  51.         Procedure FinishMake; Override;
  52.         Procedure DoItem    (inItemHit:    SInt16); Override;
  53.         Procedure DataChanged    (inDataID:    longint); Override;
  54.  
  55.     end;
  56.  
  57. {----------}
  58. Function NewModalRadios: CModalRadios;
  59.  
  60. {----------}
  61. Function GetModalRadios    (ioData:    DModalRadiosData): Boolean;
  62.  
  63. {----------}
  64. Implementation
  65.  
  66. Uses
  67.     ResourceDefs,
  68.     ControlUtils,
  69.     Miscellany;
  70.  
  71. const
  72.     kOKButton        = 1;
  73.     kRadioGroupGroup        = 2;
  74.     kStandardRadio        = 2;
  75. kGroupBox        = 3;
  76.     kGroupGroup        = 4;
  77.         kGroupRadio1        = 4;
  78.         kGroupRadio2        = 5;
  79.         kGroupRadio3        = 6;
  80. kGraphicBox        = 7;
  81.     kGraphicGroup        = 8;
  82.     kStopRadio        = 8;
  83.     kGoRadio        = 9;
  84. kBevelBox        = 10;
  85.     kBevelGroup        = 11;
  86.     kRadioButtonRadio        = 11;
  87.     kRadioButton2Radio        = 12;
  88. kTextBox        = 13;
  89.     kTextGroup        = 14;
  90.     kNameRadio        = 14;
  91.     kKindRadio        = 15;
  92.     kSizeRadio        = 16;
  93.  
  94.  
  95. {----------}
  96. Function NewModalRadios: CModalRadios;
  97. var
  98.     dialog:        CModalRadios;
  99. begin
  100.     dialog := nil;
  101.     New (dialog);
  102.  
  103.     if dialog <> nil then begin
  104.         dialog.Initialize;
  105.     end;
  106.     NewModalRadios := dialog;
  107. end;
  108.  
  109. {----------}
  110. Function GetModalRadios (
  111.     ioData:        DModalRadiosData): Boolean;
  112. Var
  113.     result:            Boolean;
  114.     dialog:            CModalRadios;
  115. begin
  116.     result := false;
  117.     dialog := NewModalRadios;
  118.  
  119.     result := dialog.RunModal (DLOG_ModalRadios, ioData);
  120.  
  121.     dialog.Free;
  122.     Dispose (dialog);
  123.  
  124.     GetModalRadios := result;
  125. end;
  126.  
  127. {----------}
  128. Procedure CModalRadios.FinishMake;
  129. var
  130.     errCode:        OSErr;
  131. begin
  132.     mOKHandle := GetControlItem (kOKButton);
  133.     SetDefaultState (mOKHandle, true);
  134.     errCode := SetDialogDefaultItem (mDialog, kOKButton);
  135.     mRadioGroupGroupHandle := GetControlItem (kRadioGroupGroup);
  136.     mStandardHandle := GetControlItem (kStandardRadio);
  137.     mGroupBoxHandle := GetControlItem (kGroupBox);
  138.     mGroupGroupHandle := GetControlItem (kGroupGroup);
  139.     mGroupRadio1Handle := GetControlItem (kGroupRadio1);
  140.     mGroupRadio2Handle := GetControlItem (kGroupRadio2);
  141.     mGroupRadio3Handle := GetControlItem (kGroupRadio3);
  142.     mGraphicBoxHandle := GetControlItem (kGraphicBox);
  143.     mGraphicGroupHandle := GetControlItem (kGraphicGroup);
  144.     mStopHandle := GetControlItem (kStopRadio);
  145.     mGoHandle := GetControlItem (kGoRadio);
  146.     mBevelBoxHandle := GetControlItem (kBevelBox);
  147.     mBevelGroupHandle := GetControlItem (kBevelGroup);
  148.     mRadioButtonHandle := GetControlItem (kRadioButtonRadio);
  149.     errCode := SetBevelButtonGraphicAlignment (mRadioButtonHandle, kControlBevelButtonAlignCenter, 0, 0);
  150.     mRadioButton2Handle := GetControlItem (kRadioButton2Radio);
  151.     errCode := SetBevelButtonGraphicAlignment (mRadioButton2Handle, kControlBevelButtonAlignCenter, 0, 0);
  152.     mTextBoxHandle := GetControlItem (kTextBox);
  153.     mTextGroupHandle := GetControlItem (kTextGroup);
  154.     mNameHandle := GetControlItem (kNameRadio);
  155.     mKindHandle := GetControlItem (kKindRadio);
  156.     mSizeHandle := GetControlItem (kSizeRadio);
  157. end;
  158.  
  159. {----------}
  160. Procedure CModalRadios.ConnectToData (
  161.     inData:        AMSignaler); Override;
  162. begin
  163.     inherited ConnectToData (inData);
  164.     mData := DModalRadiosData (inData);
  165.  
  166.     SetControlValue (mRadioGroupGroupHandle, mData.GetRadioGroup2);
  167.     SetControlValue (mGroupGroupHandle, mData.GetGroup2);
  168.     SetControlValue (mGraphicGroupHandle, mData.GetGraphic3);
  169.     SetControlValue (mBevelGroupHandle, mData.GetBevel2);
  170.     SetControlValue (mTextGroupHandle, mData.GetText2);
  171. end;
  172.  
  173. {----------}
  174. Procedure CModalRadios.DoItem (
  175.     inItemHit:        SInt16);
  176. begin
  177.     case inItemHit of
  178.     kOKButton:
  179.             SetResult (true);
  180.     kRadioGroupGroup:
  181.             mData.SetRadioGroup2 (GetControlValue (mRadioGroupGroupHandle));
  182.     kGroupGroup:
  183.             mData.SetGroup2 (GetControlValue (mGroupGroupHandle));
  184.     kGraphicGroup:
  185.             mData.SetGraphic3 (GetControlValue (mGraphicGroupHandle));
  186.     kBevelGroup:
  187.             mData.SetBevel2 (GetControlValue (mBevelGroupHandle));
  188.     kTextGroup:
  189.             mData.SetText2 (GetControlValue (mTextGroupHandle));
  190.  
  191.     end; {switch}
  192. end;
  193.  
  194. {----------}
  195. Procedure CModalRadios.DataChanged (
  196.     inDataID:        longint); Override;
  197. begin
  198.     if inDataID = idRadioGroup2 then begin
  199.         SetControlValue (mRadioGroupGroupHandle, mData.GetRadioGroup2);
  200.     end;
  201.     if inDataID = idGroup2 then begin
  202.         SetControlValue (mGroupGroupHandle, mData.GetGroup2);
  203.     end;
  204.     if inDataID = idGraphic3 then begin
  205.         SetControlValue (mGraphicGroupHandle, mData.GetGraphic3);
  206.     end;
  207.     if inDataID = idBevel2 then begin
  208.         SetControlValue (mBevelGroupHandle, mData.GetBevel2);
  209.     end;
  210.     if inDataID = idText2 then begin
  211.         SetControlValue (mTextGroupHandle, mData.GetText2);
  212.     end;
  213. end;
  214.  
  215. End.
  216.